kkamegawaさんの.NET Framework 4.0のBCLより。
File System Enumerationは配列ベースの従来のSystem.IO.FileとかSystem.IO.DirectoryにIEnumerable<T>をつけてみようかって話。LINQと併用するとき便利なこともあるしねってことだそうで。
これは重要です。その理由はファイルが1万個ぐらいあるフォルダに対して、GetFilesメソッドを使ってみると分かるのではないかな? 呼ぶとプログラムの実行がかなり長時間止まってしまいます。Win32 APIなら、「最初の1つくれ」「次くれ」「次くれ」……という流れなので、制御はすぐ戻ってきますが、GetFilesメソッドは全部揃うまで戻ってきません。
この特徴はLINQとの相性が最悪です。たとえば、Anyメソッドのように全てのデータをチェックせずとも結果が確定するクエリは、確定した時点で動作を打ち切るわけですが、GetFilesメソッドは調べる必要のないファイル名までリストを作ってしまいます。
……ということが実は気になっていたので、列挙インターフェースが付くのは納得です。
(デフォでRDBにデータを投げ込んで、生ファイルをあまり使わない人には分かりにくい話かもしれません)